#!/bin/bash

set -Eeuxo pipefail

# Change directory to where the script is
cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)/$(basename -- "$0")"

PROTO_ROOT=$(git rev-parse --show-toplevel)/external/apiset

protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_key.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_request.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_strategy_summary.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_meta_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin/proto/coin_meta_service.proto

protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_market_enums.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_market_query.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_order_enums.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_query.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_feed.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_order_gateway.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_executor.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_strategy_stored_value.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_strategy.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_strategy_reporter.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_telemetry.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_feed_stats.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_listing_mm_report.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_log.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/coin/proto/coin_data_replay.proto
protoc -I${PROTO_ROOT} --python_out=. ${PROTO_ROOT}/xunkemgmt/alarm/alarm_config.proto
protoc -I${PROTO_ROOT} -I. --python_out=. ${PROTO_ROOT}/coin/proto/support/coin_order_stateless.proto
protoc -I${PROTO_ROOT} -I. --python_out=. ${PROTO_ROOT}/coin/proto/support/coin_order_latency.proto
protoc -I${PROTO_ROOT} -I. --python_out=. ${PROTO_ROOT}/coin/proto/options_pricing.proto
protoc -I${PROTO_ROOT} -I. --python_out=. ${PROTO_ROOT}/coin/proto/options_symbology.proto
protoc -I${PROTO_ROOT} -I. --python_out=. ${PROTO_ROOT}/coin/proto/symbology.proto
protoc -I${PROTO_ROOT} -I. --python_out=. ${PROTO_ROOT}/coin2/strategy/config_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/strategy/config_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/account/account_info_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/feed/interval_feed_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/feed/realtime_mid_price_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/otc/otc_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/research/options_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/strategy/trading_summary_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/coin2/service/web3/order_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/xunkemgmt/service/alarm_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/xunkemgmt/service/calendar_service.proto
python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. ${PROTO_ROOT}/xunkemgmt/service/market_quotes_service.proto
#python -m grpc_tools.protoc -I${PROTO_ROOT} --python_out=. --grpc_python_out=. $(find "${PROTO_ROOT}/presto" -name *\.proto)

protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/coin_query_checker.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/coin_feed_checker.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/coin_feed_subscriber.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/coin_order_checker.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/coin_order_summary.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/exchange_status.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/account_control.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/proto/archive_flag.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin/feed/fastfeed/feed.proto

protoc -I${PROTO_ROOT} -I. --python_out=. coin2/strategy/basis_strat/klines.proto
protoc -I${PROTO_ROOT} -I. --python_out=. coin2/strategy/basis_strat/beta_config.proto

protoc -I${PROTO_ROOT} -I. --python_out=. third_party/googleapis/google/api/annotations.proto
protoc -I${PROTO_ROOT} -I. --python_out=. third_party/googleapis/google/api/http.proto
